Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Προσθήκη εικόνας μέσω κώδικα

Îåêßíçóå áðü ôï ìÝëïò panoylhs. Τελευταία δημοσίευση από το μέλος darklynx στις 08-06-2009, 05:51. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-06-2009, 13:39 51381

    Προσθήκη εικόνας μέσω κώδικα

    Καλημέρα Smile

    Έχω ένα System.Drawing.Image αντικείμενο και θέλω να το εμφανίσω σε ένα Image control σε WPF εφαρμογή(όχι μέσω XAML).
    Μπορεί να με βοηθήσει κάποιος?

  •  05-06-2009, 13:54 51382 σε απάντηση της 51381

    Απ: Προσθήκη εικόνας μέσω κώδικα

    Λύθηκε το πρόβλημα Smile

    void cam_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e)
            {
                e.WebCamImage.Save("image.jpg");
                BitmapImage bitmapImage = new BitmapImage(new Uri(Environment.CurrentDirectory + "\\image.jpg"));
                image.Source = bitmapImage;
            }
  •  07-06-2009, 22:34 51421 σε απάντηση της 51381

    Απ: Προσθήκη εικόνας μέσω κώδικα

    panoylhs:
    Καλημέρα Smile

    Έχω ένα System.Drawing.Image αντικείμενο και θέλω να το εμφανίσω σε ένα Image control σε WPF εφαρμογή(όχι μέσω XAML).
    Μπορεί να με βοηθήσει κάποιος?


    Γνωρίζει κανείς άλλον τρόπο? Geeked
  •  08-06-2009, 05:51 51422 σε απάντηση της 51421

    Απ: Προσθήκη εικόνας μέσω κώδικα

    Φαντάζομαι θέλεις να αποφύγεις την ενδιάμεση δημιουργία του αρχείου στο δίσκο συγκριτικά με την μέθοδο που ακολούθησες.Με δεδομένο ότι έχεις έτοιμη την εικόνα σου σε ένα System.Drawing.Image αντικείμενο:

    void cam_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e)
    {
    //h abstract klash System.Drawing.Image de mas einai kai poly xrhsimh apo monh ths
    System.Drawing.Bitmap bmp=new System.Drawing.Bitmap(e.WebCamImage);
    //pairnoume ta bits tou bitmap mas
    System.Drawing.Imaging.BitmapData bmpData= bmp.LockBits(new System.Drawing.Rectangle(0,0,bmp.Width,bmp.Height),System.Drawing.Imaging.ImageLockMode.WriteOnly,bmp.PixelFormat);
    //kai fylame dyo times pou mas endiaferoun
    IntPtr ptr=bmpData.Scan0; int stride = bmpData.Stride;
    int size=bmpData.Stride*bmpData.Height;
    //xreiazomaste thn paletta me ta xrwmata(pleonasmos edw alla sthn para8etw gia plhrothta)
    List<Color> colors = new List<Color>();
    foreach (System.Drawing.Color bmpcolor in bmp.Palette.Entries)
    { colors.Add(new Color { A = bmpcolor.A, B = bmpcolor.B, R = bmpcolor.R, G = bmpcolor.G }); }
    BitmapPalette palette=colors.Count==0?null: new BitmapPalette(colors);
    //o idios pleonasmos gia to PixelFormat ths eikonas (an to ksereis apo prin antikatesthse monos sou thn timh anti gia to parakatw tmhma kwdika)
    PixelFormat pixelFormat;
    switch (bmp.PixelFormat)
    {
    case System.Drawing.Imaging.PixelFormat.Format16bppRgb555: pixelFormat = PixelFormats.Bgr555;
    break;
    case System.Drawing.Imaging.PixelFormat.Format16bppRgb565 :
    pixelFormat = PixelFormats.Bgr565;
    break;
    case System.Drawing.Imaging.PixelFormat.Format24bppRgb :
    pixelFormat = PixelFormats.Bgr24;
    break;
    case System.Drawing.Imaging.PixelFormat.Format32bppRgb :
    pixelFormat = PixelFormats.Bgr32;
    break;
    case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
    pixelFormat = PixelFormats.Bgra32;
    break;
    default:
    pixelFormat = PixelFormats.Bgr24;
    break;
    }
    //twra dhmiourgoume to source tou image control me bash tis idiothtes tou parapanw bitmap
    BitmapSource bmpsrc = BitmapSource.Create(bmp.Width, bmp.Height, bmp.HorizontalResolution, bmp.VerticalResolution, pixelFormat, palette, bmpData.Scan0, size, stride); bmp.UnlockBits(bmpData);
    //epitelous exoume etoimo to source tou image control
    image.Source = bmpsrc;
    }

    Ελπίζω αυτή η λύση να σε κάλυψε :)

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems